package com.woniuxy.controller;

import com.woniuxy.entity.User;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.servlet.ModelAndView;

import java.util.Arrays;
import java.util.List;
import java.util.Map;

/**
 * @Author：向天浩
 * @Date：2022/1/24 14:58
 * @Description :TODO
 */
//@RestController这个注解相当于一个语法糖，兼容了Controller和ResponseBody
@Controller //使用这个注解会自动生成bean对象
@RequestMapping("/user") //RequestMapping注解自定义；url路径
public class SecondController {
//
//    @RequestMapping("/findAll")
//    public ModelAndView findAll(){
//         ModelAndView mv = new ModelAndView();
//         mv.addObject("msg","一眼丁针");
//         mv.setViewName("/index.jsp");
//        return mv;
//    }

    @RequestMapping("/addUser")
    public ModelAndView add(String name){
        ModelAndView mv = new ModelAndView();
        mv.addObject("msg","名字是:"+name);
        mv.setViewName("mytest");
        return mv;
    }

    @RequestMapping("/Arraysadd")
    public ModelAndView add(int[] ids){
        ModelAndView mv = new ModelAndView();
        mv.addObject("msg","数据是:"+ Arrays.toString(ids));
        mv.setViewName("mytest");
        return mv;
    }

    @RequestMapping("/listadd")
    //使用list和map的时候如果是form表单提交的数据，则需要在后端加一个注解RequestParam，否则会报错
    public ModelAndView add(@RequestParam List ids){
        ModelAndView mv = new ModelAndView();
        mv.addObject("msg","数据是:"+ids.toString());
        mv.setViewName("mytest");
        return mv;
    }

    @RequestMapping("/Mapadd")
    //使用list和map的时候如果是form表单提交的数据，则需要在后端加一个注解RequestParam，否则会报错
    public ModelAndView add(@RequestParam Map name){
        ModelAndView mv = new ModelAndView();
        mv.addObject("msg","数据是:"+name.toString());
        mv.setViewName("mytest");
        return mv;
    }

    @RequestMapping("/Userpadd")
    //使用list和map的时候如果是form表单提交的数据，则需要在后端加一个注解RequestParam，否则会报错
    public ModelAndView add(User user){
        ModelAndView mv = new ModelAndView();
        mv.addObject("msg","数据是:"+user.toString());
        mv.setViewName("mytest");
        return mv;
    }

    //有了这个注解会将返回的数据转换成json格式，可以加在类上也可以加在方法上
    //这个注解想生效需要引入依赖jackson，然后配置一个注解驱动,使用mvc
    @ResponseBody
    @RequestMapping("/Jsadd")
    //使用list和map的时候如果是form表单提交的数据，则需要在后端加一个注解RequestParam，否则会报错
    public User add(){
        User user=new User();
        user.setName("张三");
        user.setAge(11);
        user.setEmail("236321110@qq.com");
        return user;
    }


}
